1
超越成對資料:使用元組進行多型別資料群組
AI037Lesson 19
00:00

在大型 C++ 系統的架構中,為每一個臨時資料群組定義正式的 struct 結構通常過於繁複。而 std::tuple 則作為一種 異質容器,將 std::pair 擴展為可儲存任意數量不同型別的資料。

1. 建構與限制

與標準容器不同, tuple 建構函數是 明確的。你無法使用列表進行複製初始化;必須使用直接初始化或 std::make_tuple

tuple<int, double> t1{1, 2.5}; // 正確
tuple<int, double> t2 = {1, 2.5}; // 錯誤!

2. 存取與自我檢視

成員透過 get<i>(tuple_name)存取,其中 i 必須是編譯時期已知的常數表達式。可透過 tuple_sizetuple_element 使用 decltype

std::tuple 的記憶體配置字串get<0>整數get<1>浮點數get<2>

3. 關係邏輯

元組以 字典序的方式進行比較。只有當兩個元組具有相同數量的成員,且其對應型別支援關係運算子時,比較才有效。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>